home *** CD-ROM | disk | FTP | other *** search
Wrap
1 REM *** AUTODIALER *** 2 ' BY BILL SCHMITT 3 ' FOR USE WITH SMARTMODEM. 4 '******* IF ANY FAULTS ARE FOUND, LEAVE ME A MSG ON THIS BBS. 10 COLOR 7:KEY OFF:CLS 20 DIM A$(100),NUM$(100) 30 FOR X=1 TO 5:READ M$:MENU$=MENU$+M$+CHR$(13):NEXT 31 FOR X=1 TO 3:READ M$:MEN1$=MEN1$+M$+CHR$(13):NEXT 40 DATA"Do you wish to: 1) Edit numbers in memory." 50 DATA " 2) Load numbers from disk." 60 DATA " 3) Store numbers to disk." 70 DATA " 4) Dial a number." 80 DATA " 5) List all numbers in memory." 90 DATA " 6) Run another program." 100 DATA " 7) Switch to 'dumb' terminal" 110 DATA " 8) Quit." 120 KEY OFF 130 CLS 140 PRINT " WELCOME TO AUTO-DIAL " 150 PRINT:PRINT 160 FOR X=1 TO 500:NEXT 170 PRINT "There are no numbers in memory..." 180 FOR X=1 TO 500:NEXT 190 IF TT=1 THEN PRINT "MENU" 200 C=CSRLIN:LOCATE 25,1:PRINT SPC(79):LOCATE C,1,0 210 ON ERROR GOTO 0:PRINT MENU$;MEN1$ 220 LOCATE ,21,1 :TT=1 230 J$=INKEY$:J=VAL(J$):IF J<1 OR J>8 THEN 230 240 ON J GOTO 300,1320,1200,1020,810,280,260,270 250 PRINT :GOTO 190 260 ON ERROR GOTO 0:RUN"acc.bas" 270 CLOSE:CLS:KEY ON:ON ERROR GOTO 0:SYSTEM:END 280 CLS:GOSUB 1500:PRINT:PRINT"DIRECTORY":FILES:PRINT:PRINT"Which basic program do you wish to run?";:GOSUB 1520:IF K$="" THEN 190 ELSE ON ERROR GOTO 290:K$=LEFT(K$,8)+".bas":RUN K$ 290 PRINT:RESUME 280 300 CLS:LOCATE 1,1,1 310 PRINT:PRINT "NUMBER EDIT" 320 GOSUB 1500 330 K$="":PRINT "Do you wish to: 1) Enter numbers 340 PRINT " 2) Delete entries 350 PRINT " 3) Insert blank entries 360 PRINT " 4) Clear memory 370 PRINT " 5) List numbers 380 J$=INKEY$:J=VAL(J$):IF J$=CHR$(27) THEN CLS:GOTO 190 390 IF J=5 THEN GOSUB 420:GOTO 330 400 IF J=4 THEN 730 410 IF J<1 OR J>3 THEN 380:ELSE CLS:GOSUB 1500:GOSUB 1510:RE=1:ON J GOTO 430,760,580 420 CLS:GOSUB 1500:GOSUB 880:RETURN 430 PRINT:PRINT "Start at entry number?(L=list) :";:GOSUB 1520:PRINT 440 IF K$="l" OR K$="L" THEN CLS:GOSUB 1500:GOSUB 1510:GOSUB 880:GOTO 430 450 K=VAL(K$):IF K<1 OR K>100 THEN K=1:ELSE FE=K-1 460 PRINT "ENTRY NUMBER :"FE+1 470 IF FE>EF THEN EF=FE 480 PRINT "NAME : ";:COLOR 0,7:K$="":GOSUB 1520:IF K$="" THEN PRINT A$(FE+1);:GOTO 500 490 A$(FE+1)=K$ 500 COLOR 7,0:PRINT 510 PRINT "NUMBER : ";:COLOR 0,7:K$="":GOSUB 1520:FE=FE+1:IF K$<>"" THEN NUM$(FE)=K$ ELSE PRINT NUM$(FE); 520 COLOR 7,0:PRINT 530 IF VAL(NUM$(FE))= 0 THEN PRINT "BAD NUMBER FORMAT":FE=FE-1:GOTO 510 540 PRINT:PRINT "Is this all correct ?";:LOCATE ,,1 550 Z$=INKEY$:IF Z$="" THEN 550 560 PRINT Z$ :IF Z$="n" OR Z$="N" THEN FE=FE-1 570 GOTO 460 580 PRINT"INSERT": 590 K$="":PRINT:PRINT"After which entry do you wish to insert additional entries?(L=list)";:GOSUB 1520:PRINT 600 IF K$="l" OR K$="L" THEN CLS:GOSUB 1500:GOSUB 1510:GOSUB 880:GOTO 590 610 K=VAL(K$):IF K>EF OR K<1 THEN PRINT "Entry does not exist.":GOTO 590 620 EN=K 630 K$="":PRINT:PRINT"How many lines should be inserted?";:GOSUB 1520:PRINT 640 K=VAL(K$):IF K<1 THEN 630 650 IF EF+K>100 THEN PRINT "Not enough room for"K"lines.":GOTO 630 660 LN=K 670 FOR Z=EF TO EN STEP -1:A$(Z+LN)=A$(Z):NUM$(Z+LN)=NUM$(Z):NEXT 680 FOR Z=EN+1 TO EN+LN:A$(Z)="":NUM$(Z)="":NEXT 690 EF=EF+LN:PRINT :PRINT LN;"ENTRIES INSERTED." 700 PRINT" Press any key to return to edit menu." 710 J$=INKEY$:IF J$="" THEN 710 720 IF J$=CHR$(27) THEN 210: ELSE GOTO 300 730 '*** CLEAR MEMORY *** 740 FOR X=1 TO EF:A$(X)="":NUM$(X)="":NEXT:PRINT "Memory Cleared.":PRINT:GOTO 330 750 '*** DELETE ENTRIES *** 760 PRINT"DELETE" 770 PRINT:PRINT "Delete which entry?(L=list)";:GOSUB 1520:PRINT:K=VAL(K$) 780 IF K$="l" OR K$="L" THEN CLS:GOSUB 1500:GOSUB 1510:GOSUB 880:GOTO 770 790 IF K<1 OR K>EF THEN PRINT "ENTRY DOES NOT EXIST.":PRINT:GOTO 770 800 FOR X=K+1 TO ER:NUM$(X-1)=NUM$(X):A$(X-1)=A$(X):NEXT X:A$(ER)="":NUM$(ER)="":EF=EF=1:PRINT "Entry"K"Deleted.":GOTO 770 810 REM *** NUMBER LISTING *** 820 ON ERROR GOTO 1000 830 CLS: PRINT "Do you wish a hard copy of the following list ?";:LOCATE ,,1 840 Z$=INKEY$:IF Z$="" THEN 840 850 IF Z$=CHR$(27) THEN CLS:GOTO 190 860 IF Z$="y" OR Z$="Y" THEN PR=1:PRINT"Turn your printer on.":LPRINT:ELSE PR=0 870 CLS:GOSUB 880:GOTO 190 880 PRINT "PHONE DIRECTORY: 890 PRINT "ENTRY NAME NUMBER" 900 IF PR=1 THEN LPRINT "ENTRY NAME NUMBER" 910 FOR Y=1 TO 78:PRINT "-";:IF PR=1 THEN LPRINT "-"; 920 NEXT Y :PRINT:IF PR=1 THEN LPRINT 930 FOR X=1 TO EF 940 IF NUM$(X)="" THEN 970 950 PRINT X,LEFT$(A$(X),15);:LOCATE ,40:PRINT NUM$(X) 960 IF PR=1 THEN LPRINT X,LEFT$(A$(X),15);SPC(25-LEN(A$(X)));NUM$(X) 970 NEXT X 980 PRINT:PRINT"Hit any key to continue :";:LOCATE,,1 990 J$=INKEY$:IF J$="" THEN 990:ELSE PRINT:RETURN 1000 IF ERR=27 THEN PRINT "TURN PRINTER ON!!!":RESUME 1010 PRINT "ERROR #"ERR:RESUME 1020 REM *** DIALING SEQUENCE *** 1030 ON ERROR GOTO 1630 1040 GOSUB 1500 1050 PRINT "WHICH ENTRY DO YOU WISH TO DIAL?(L=LIST)";:LOCATE,,1 1060 K$="":GOSUB 1520:J=VAL(K$):IF K$="L" OR K$="l" THEN CLS:GOSUB 1500:GOSUB 880:GOTO 1050 1070 IF J<1 OR J>EF THEN PRINT "THERE IS NO SUCH NUMBER.":PRINT:GOTO 1050 1080 IF NUM$(J)="" THEN PRINT "THERE IS NO SUCH NUMBER.":PRINT :GOTO 1050 1090 PRINT :PRINT"DO YOU WISH TO CALL ";CHR$(34);A$(J);CHR$(34);" ?"; 1100 LOCATE ,,1 1110 J$=INKEY$:IF J$="" THEN 1110 1120 PRINT J$ 1130 IF J$="n" OR J$="N" THEN 1050 1140 IF J$=CHR$(27) THEN CLS: GOTO 210 1150 REM *** CONNECT MODEM *** 1160 OPEN "COM1:" AS #1 1170 PRINT #1,"ATDT";NUM$(J) 1180 PRINT NUM$(J) 1190 FOR X=1 TO 2000:NEXT:CLOSE:CLS:GOTO 190 1200 REM *** DATA STORAGE *** 1210 ON ERROR GOTO 1300 1220 CLS:GOSUB 1500:PRINT:PRINT "Directory Storage":PRINT :PRINT:PRINT "Directories on file:" 1230 FILES "*.dir":PRINT:PRINT:PRINT "Name of directory to be saved? ";:GOSUB 1520 1240 IF K$="" THEN CLS :GOTO 190 1250 K$= LEFT$(K$,8)+".DIR": OPEN K$ FOR OUTPUT AS #2 1260 FOR X=1 TO EF:IF NUM$(X)="" THEN 1280 1270 WRITE #2,LEFT$(A$(X),15):WRITE #2, NUM$(X) 1280 NEXT X 1290 CLOSE:PRINT:PRINT "The following directory was saved:":GOSUB 890:CLS:GOTO 190 1300 IF ERR=53 THEN PRINT "[none]":RESUME NEXT 1310 PRINT "Error #";ERR:RESUME 1320 REM *** DATA LOAD *** 1330 ON ERROR GOTO 1470 1340 CLS:GOSUB 1500:PRINT:PRINT "Directory Load":PRINT:PRINT:PRINT "Directories on file:" 1350 FILES "*.dir":PRINT:PRINT:PRINT "Name of directory to be loaded? ";:GOSUB 1520 1360 IF K$="" THEN CLS :GOTO 190 1370 K$= LEFT$(K$,8)+".DIR": OPEN K$ FOR INPUT AS #2 1380 PRINT:PRINT"Clear all previous numbers?"; 1390 K$=INKEY$:IF K$="" THEN 1390:ELSE PRINT K$:IF K$<>"Y" AND K$<>"y" THEN 1410 1400 FOR X=1 TO 100:A$(X)="":NUM$(X)="":NEXT:PRINT"MEMORY CLEARED.":EF=0 1410 FE=0 1420 FE=FE+1:IF FE>100 THEN PRINT "Out of Room":ERROR 62 1430 IF NUM$(FE)<>"" THEN 1420 1440 INPUT #2,A$(FE),NUM$(FE) 1450 IF FE>EF THEN EF=FE 1460 GOTO 1430 1470 IF ERR=62 THEN PRINT "NUMBERS LOADED.":PRINT:CLOSE #2:FE=FE-1:RESUME 190 1480 IF ERR=53 THEN RESUME 1320 1490 PRINT "ERROR #"ERR:RESUME 1500 C=CSRLIN:LOCATE 25,35:PRINT "Type <esc> to return to menu.";:LOCATE C,1,1:RETURN 1510 C=CSRLIN:LOCATE 25,35:PRINT "Type '\' to return to edit menu.";:LOCATE C,1,1:RETURN 1520 REM *** key entry sequence *** 1530 K$="" 1540 LOCATE ,,1 1550 J$=INKEY$:IF J$="" THEN 1550 1560 IF J$=CHR$(27) THEN COLOR 7:RE=0:CLS:GOTO 190 1570 IF RE=1 AND J$=CHR$(92) THEN COLOR 7:CLS:GOTO 300 1580 IF J$<>CHR$(8) THEN 1610 1590 IF K$="" THEN 1550 ELSE LOCATE ,POS(0)-1:PRINT " "; 1600 LOCATE ,POS(0)-1:K$=LEFT$(K$,LEN(K$)-1):GOTO 1550 1610 IF J$=CHR$(13) THEN PRINT " ";:LOCATE ,,0:RETURN 1620 K$=K$+J$:PRINT J$;:GOTO 1540 1630 PRINT "TURN MODEM ON ! ":RESUME